home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / snip1292.zip / UUDECODE.C < prev    next >
C/C++ Source or Header  |  1992-12-26  |  1KB  |  40 lines

  1. /*
  2. ** by: John Lots
  3.    patched up for BC++ 3.1 by Alan Eldridge 10/12/92
  4.        (UUCP: alane@wozzle.linet.org, FIDO: 1:272/38.473)
  5.  
  6. */
  7.  
  8. #include        <stdio.h>
  9. #include        <stdlib.h>
  10. #define         DEC(c)  (((c)-' ')&077)
  11.  
  12. int main()
  13. {
  14.         int     n;
  15.         char    buf[128],a,b,c,d;
  16.  
  17.         scanf("begin %o ", &n);
  18.         gets(buf);                              /* filename */
  19.         if (!freopen(buf, "wb", stdout))         /* oops.. */
  20.         {
  21.                 perror(buf);
  22.                 exit(1);
  23.         }
  24.         while ((n=getchar())!=EOF&&((n=DEC(n))!=0))
  25.         {
  26.                 while (n>0)
  27.                 {
  28.                         a=DEC(getchar());
  29.                         b=DEC(getchar());
  30.                         c=DEC(getchar());
  31.                         d=DEC(getchar());
  32.                         if (n-->0) putchar((a<<2)|(b>>4));
  33.                         if (n-->0) putchar((b<<4)|(c>>2));
  34.                         if (n-->0) putchar((c<<6)|d);
  35.                 }
  36.                 n=getchar();                    /* skip \n */
  37.         }
  38.         return 0;
  39. }
  40.